Measuring Testing Complexity

نویسندگان

  • Javier Ferrer
  • Francisco Chicano
  • Enrique Alba
چکیده

Since the birth of Software Industry there is a special interest in measuring the effort in terms of time and cost that a task requires. Nowadays, since applications are essential for Industry, the software developers need to measure different kind of aspects: quality, cost, reliability, etc. Complexity is another important aspect in which software engineers are interested. But, what does we mean with “complexity” of a software piece? Basili [1] defines complexity as a measure of the resources used by a system while interacting with a piece of software to perform a given task. If the interacting system is a computer, then complexity is defined as the execution time and storage required to perform the computation described by the program. If the interacting system is a programmer then complexity is defined as the difficulty of performing tasks such as coding, debugging, testing or refactoring. In this abstract we propose a new meaning for complexity: the difficulty of testing a program. Such a measure of complexity, which we call Testing Complexity, could be useful to decide which is the best way of generating a test suite for the piece of work. It could be useful, for example, to decide the parameters of an evolutionary test data generator [3] prior to its execution. Our new complexity measure predicts the behaviour of an automatic test data generator based on random testing [2]. The measure is based on a Markov model of the program that is used for estimating the probability of traversing the branches of the program. In order to confirm the quality of our new complexity measure, we performed an empirical study using a benchmark of 1800 test programs automatically generated.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Literature Survey on Component Based Complexity Metrics

Component-based software is an important area in software engineering field. It has become one of the preferable branch for developing large and complex systems by integrating prefabricated software. Measuring software complexity is an important aspect during software development. Because software complexity is an important determinant of software development effort, testing effort, cost, maint...

متن کامل

A MULTI-OBJECTIVE OPTIMIZATION MODEL FOR PROJECT PORTFOLIO SELECTION CONSIDERING AGGREGATE COMPLEXITY: A CASE STUDY

Existing project selection models do not consider the complexity of projects as a selection criterion, while their complexity may prolong the project duration and even result in its failure. In addition, existing models cannot formulate the aggregate complexity of the selected projects. The aggregated complexity is not always equal to summation of complexity of projects because of possible syne...

متن کامل

Effectiveness of software testing techniques on a measurement scale

Testing remains the truly effective means to assure the quality of a software system of nontrivial complexity. An important aspect of test planning is measuring test effectiveness. To make testing more successful we need to choose effective testing techniques. To compare testing techniques we need to place software testing techniques on a measurement scale which can define the relative merits o...

متن کامل

Theoretical and Experimental Study of Dependence-based Complexity Metrics for Distributed Programs

Software metrics have many applications in software engineering activities including analysis, testing, debugging, and maintenance of programs, and management of project. Until now a number of complexity metrics have been proposed and used for measuring sequential programs, but few could be used for measuring concurrent and distributed programs. Cheng proposed a group of dependence-based comple...

متن کامل

Measurement of Complexity and Comprehension of a Program Through a Cognitive Approach

The inherent complexity of the software systems creates problems in the software engineering industry. Numerous techniques have been designed to comprehend the fundamental characteristics of software systems. To understand the software, it is necessary to know about the complexity level of the source code. Cognitive informatics perform an important role for better understanding the complexity o...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010